﻿using Common;

namespace Entidades.Models
{
    public class EstudioCostoInfo
    {
        #region Constructores

        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public EstudioCostoInfo()
        {
        }

        /// <summary>
        /// Construye un objeto EstudioCostoInfo a partir de un EstudioCosto
        /// </summary>
        public EstudioCostoInfo(EstudioCosto estudioCosto)
        {
            this.Id = estudioCosto.Id;

            this.IdEstudio = estudioCosto.Estudio.Id;
            this.Estudio = estudioCosto.Estudio.Nombre;
            this.IdTipoProyecto = estudioCosto.TipoProyecto.IsNotNull() ? estudioCosto.TipoProyecto.Id : WellKnownKeys.Entities.DEFAULT_ID;
            this.Adaptacion = estudioCosto.Adaptacion;
            this.Cancion = estudioCosto.Cancion;
            this.Coro = estudioCosto.Coro;
            this.Direccion = estudioCosto.Direccion;
            this.LoopMinimo = estudioCosto.LoopMinimo;
            this.Loops = estudioCosto.Loops;
            this.Mezcla = estudioCosto.Mezcla;
            this.Palabras = estudioCosto.Palabras;
            this.Traduccion = estudioCosto.Traduccion;
            this.Temporizacion = estudioCosto.Temporizacion;
        }

        #endregion

        #region Propiedades

        /// <summary>
        /// Id (PK)
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Id del Estudio
        /// </summary>
        public int IdEstudio { get; set; }

        /// <summary>
        /// Nombre del Estudio
        /// </summary>
        public string Estudio { get; set; }

        /// <summary>
        /// Id del Tipo de Proyecto
        /// </summary>
        public int IdTipoProyecto { get; set; }

        /// <summary>
        /// Loops
        /// </summary>
        public decimal Loops { get; set; }

        /// <summary>
        /// Loop Mínimo
        /// </summary>
        public decimal LoopMinimo { get; set; }

        /// <summary>
        /// Canción
        /// </summary>
        public decimal Cancion { get; set; }

        /// <summary>
        /// Coro
        /// </summary>
        public decimal Coro { get; set; }

        /// <summary>
        /// Palabras
        /// </summary>
        public decimal Palabras { get; set; }

        /// <summary>
        /// Dirección
        /// </summary>
        public decimal Direccion { get; set; }

        /// <summary>
        /// Traducción
        /// </summary>
        public decimal Traduccion { get; set; }

        /// <summary>
        /// Adaptación
        /// </summary>
        public decimal Adaptacion { get; set; }

        /// <summary>
        /// Mezcla
        /// </summary>
        public decimal Mezcla { get; set; }

        /// <summary>
        /// Temporización
        /// </summary>
        public decimal Temporizacion { get; set; }

        #endregion
    }
}
